{
  // 声明  表示独一无二的，不能获取的值
  let a1=Symbol();
  let a2=Symbol();
  console.log(a1===a2);
  //  false
  //   'a3'相等'a3'是Symbol的依赖值
  //   我猜Symbol底层采用时间搓
  //  Symbol.for(new Date().getTime())=Symbol()
  //  Symbol.for('a3')
  let a3=Symbol.for('a3');
  // let a3=Symbol.for(new Date().getTime());
  let a4=Symbol.for('a3');
  console.log(a3===a4);
  // true
}

{
  let a1=Symbol.for('abc');
  let obj={
    [a1]:'123',
    'abc':345,
    'c':456
  };
  console.log('obj',obj);
  // 循环获取不到键值对  [a1]:'123',
  for(let [key,value] of Object.entries(obj)){
    console.log('let of',key,value);
  }
    //
    console.log('let of---',obj[a1]);
  //  let of--- 123
  // 只有通过特定方法才能获取到 Symbol键值对.只获得这样的键值对
  Object.getOwnPropertySymbols(obj).forEach(function(item){
    console.log('--',item,'--',obj[item]);
  //  -- Symbol(abc) -- 123
  })
    console.log('---------ownkeys----------');
  Reflect.ownKeys(obj).forEach(function(item){
    console.log('ownkeys',item,obj[item]);
      // 获取所有键值对
      // ownkeys abc 345
      // ownkeys c 456
      // ownkeys Symbol(abc) 123
  })
}
